package thinkingInJava.io;
// page 532 演示创建及删除目录
//: io/MakeDirectories.java
//Demonstrates the use of the File class to
//create directories and manipulate files.
//{Args: MakeDirectoriesTest}
import java.io.*;

public class MakeDirectories {
private static void usage() {
 System.err.println(
   "Usage:MakeDirectories path1 ...\n" +
   "Creates each path\n" +
   "Usage:MakeDirectories -d path1 ...\n" +
   "Deletes each path\n" +
   "Usage:MakeDirectories -r path1 path2\n" +
   "Renames from path1 to path2");
 System.exit(1);
}
private static void fileData(File f) {
 System.out.println(
   "Absolute path: " + f.getAbsolutePath() +
   "\n Can read: " + f.canRead() +
   "\n Can write: " + f.canWrite() +
   "\n getName: " + f.getName() +
   "\n getParent: " + f.getParent() +
   "\n getPath: " + f.getPath() +
   "\n length: " + f.length() +
   "\n lastModified: " + f.lastModified());
 if(f.isFile())
   System.out.println("It's a file");
 else if(f.isDirectory())
   System.out.println("It's a directory");
}
public static void main(String[] args) {
 if(args.length < 1) usage();
 if(args[0].equals("-r")) {
   if(args.length != 3) usage();
   File
     old = new File(args[1]),
     rname = new File(args[2]);
   old.renameTo(rname);
   fileData(old);
   fileData(rname);
   return; // Exit main
 }
 int count = 0;
 boolean del = false;
 if(args[0].equals("-d")) {
   count++;
   del = true;
 }
 count--;
 while(++count < args.length) {
   File f = new File(args[count]);
   if(f.exists()) {
     System.out.println(f + " exists");
     if(del) {
       System.out.println("deleting..." + f);
       f.delete();
     }
   }
   else { // Doesn't exist
     if(!del) {
       f.mkdirs();
       System.out.println("created " + f);
     }
   }
   fileData(f);
 }
}
} /* Output: (80% match)
created MakeDirectoriesTest
Absolute path: d:\aaa-TIJ4\code\io\MakeDirectoriesTest
Can read: true
Can write: true
getName: MakeDirectoriesTest
getParent: null
getPath: MakeDirectoriesTest
length: 0
lastModified: 1101690308831
It's a directory
*///:~
